آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic
تهیه و آموزش نرم افزار دارک بیسیک
 
 
یک شنبه 15 ارديبهشت 1392برچسب:, :: 1:49 ::  نويسنده : ابوالفضل

 با استفاده از دستورات این فصل می توانیم صفحاتی متشکل از شبکه های ( مستطیل شکل ) گوشه دار بسازیم . همچنین می توانیم لبه های میان شبکه های داخل ماتریکس را به مقدار دلخواه بالا و پایین ببریم و به تک تک شبکه های ماتریکس عکس بچسبانیم . طول و عرض کل شبکه و تعداد شبکه های طولی و عرضی داخل را ما مشخص کنیم . از ماتریکس ها می توان برای ایجاد کوه ، تپه ، غار و ناهمواری های مختلفی استفاده کرد .

 
دستور MAKE MATRIX
با این دستور می توانیم صفحه ای مشبک بسازیم . مانند دستورالعمل زیر :
 
MAKE MATRIX MatrixNumber,Width,Height,XSegments,ZSegments
 
طبق این دستورالعمل به جای MatrixNumber شماره ی ماتریکس و به جای Width طول و به جای Height عرض ماتریک و به جای XSegments تعداد شبکه های تشکیل دهنده ی طولی و به جای ZSegments تعدا شبکه های تشکیل دهنده ی عرضی را قرار می دهیم . مانند مثال زیر :
 
Make Matrix 1,500,250,25,10
Position Camera 250,150,-300
Wait Key
 
در این مثال ماتریکسی با شماره ی یک ( نام 1 ) با طول 500 و عرض 250 و با تعداد 25 شبکه ی طولی و 10 شبکه ی عرضی ( 250=10*25 ) ، در مجموع 250 شبکه ی داخلی در آن ایجاد شد .
 
تابع MATRIX EXIST
این تابع بررسی می کند که آیا ماتریکس مورد نظر وجود دارد یا خیر .
اگر ماتریکس مورد نظر وجود داشت ، تابع ()Matrix Exist مقدار یک و اگر وجود نداشت تابع ()Matrix Exist مقدار صفر را برمی گرداند . مانند مثال زیر :
 
Make Matrix 2,10,10,3,3
Do
(A = Matrix Exist(2
(Text 10,10,Str$(A
Loop
 
دستور DELETE MATRIX
این دستور ماتریکس مورد نظر را حذف می کند . مانند مثال زیر :
 
Make Matrix 2,1000,500,10,20
Make Matrix 4,250,350,7,8
Delete Matrix 2
Wait Key
 
در این مثال ماتریکس شماره ی 2 حذف شد .
 
دستور POSITION MATRIX
با این دستور می توانیم موقعیت مکانی ماتریکس مورد نظر را در فضای سه بعدی مشخص کنیم . مانند دستورالعمل زیر :
 
Make Matrix 7,500,250,25,10
Position Camera 250,150,-300
Wait 1500
Position Matrix 7,50,50,0
Wait Key
 
تابع MATRIX POSITION X و تابع MATRIX POSITION Y و تابع MATRIX POSITION Z
تابع ()MATRIX POSITION X فصله ی ماتریکس تا محور X مختصات و تابع ()MATRIX POSITION Y فاصله ی ماتریکس تا محور Y مختصات و تابع ()MATRIX POSITION Z فاصله ی ماتریکس تا محور Z مختصات فضای سه بعدی را برمی گرداند . مانند مثال زیر :
 
Make Matrix 5,500,250,25,10
Position Camera 250,150,-300
Position Matrix 5,10,50,70
(X = Matrix Position X(5
(Y = Matrix Position Y(5
(Z = Matrix Position Z(5
Do
(Text 10,10,Str$(X
(Text 10,30,Str$(Y
(Text 10,50,Str$(Z
Loop
 
نکته : زمانی که اشیاء ساده ی سه بعدی را ایجاد می کردیم .نقطه ی لولایی شیء به نام پایوت ( Pivot نقطه ای در جسم می باشد که موحور X و Y و Z  آن شیء در آن نقطه همدیگر را قطع می کنند ) معمولا در وسط جسم وجود داشت و پایوت اشیاء پیچیده ی سه بعدی بنا به طراحشان در موقعیت خاصی در فضای آن جسم گذاشته می شود و در ماتریکس نقطه ی پایوت در پائین و چپ جسم قرار دارد . ما در مثال زیر موقعت یک جعبه و یک ماتریکس را در نقطه ی X=0 و Y=0 و Z=0 قرار می دهیم تا پایوت هر دو در یک نقطه مشخص شود .
 
Make Matrix 4,500,500,25,25
Make Object Box 2,10,10,10
Position Matrix 4,0,0,0
Position Object 2,0,0,0
Position Camera 0,100,-250
Wait Key
 
دستور SET MATRIX HEIGHT
با این دستور می توانیم هر یک از گوشه های بین شبکه های موجود در ماتریکس را به تنهایی بالا و یا پائین بکشیم . مانند مثال زیر :
 
MatrixNumber=4
Make Matrix MatrixNumber,500,250,25,10
Position Camera 250,150,-300
SET MATRIX HEIGHT MatrixNumber,1,2,20
Update Matrix MatrixNumber
Wait Key
 
در این مثال گوشه ای با مختصات 1و2 به مقدار 20 واحد بالا کشیده شد . یعنی اگر گوشه ها در طول ( از پائین و چپ ) به سمت راست با شماره ی صفر شروع ، و در عرض ( از پائین و چپ ) به سمت بالا با شماره ی صفر شروع شده باشند ( شمرده شوند ) . مختصات 1و2 یعنی گوشه ی دوم از چپ و سوم از پائین به مقدار 20 واحد به بالا کشیده شده . 
 
در مثال بالا از دستور Update Matrix هم استفاده کردیم تا تغیرات بوجود آمده در ماتریکس اعمال شود .
 
با اجرای مثال زیر و با استفاده از دکمه های جهت ، موقعت گوشه ی مورد نظر در ماتریکس را مشخص و با استفاده از دکمه های A و Z آن گوشه را بالا و یا پائین می کشیم .
 
MatrixNumber=4
Make Matrix MatrixNumber,500,250,25,10
Position Camera 250,150,-300
Sync On : Sync Rate 30
Do
(Text 10,10,"X = "+Str$(X
(Text 10,30,"Y = "+Str$(Y
(Text 10,50,"Height = "+Str$(H
If Upkey()=1 Then Inc Y
If Downkey()=1 Then Dec Y
If Rightkey()=1 Then Inc X
If Leftkey()=1 Then Dec X
If X < 0 Then X = 0
If X > 25 Then X = 25
If Y < 0 Then Y = 0
If Y > 10 Then Y = 10
If Inkey$()="A" Or Inkey$()="a" Then Inc H
If Inkey$()="Z" Or Inkey$()="z" Then Dec H
If H<-300 Then H=-300
If H>300 Then H=300
SET MATRIX HEIGHT MatrixNumber,X,Y,H
Update Matrix MatrixNumber : Sync
Loop
 
دستور RANDOMIZE MATRIX
این دستور تمام گوشه های بین شبکه ماتریکس را به مقدار یک عدد تصادفی بالا می کشد . مانند دستورالعمل زیر :
 
RANDOMIZE MATRIX MatrixNumber,MaximumHeight
 
طبق این دستورالعمل به جای MatrixNumber نام ماتریکس مورد نظر و به جای MaximumHeight بیشترین بالا آمدن گوشه ها را قرار می دهیم . یعنی هر گوشه ای به اندازه ای بالا می آید و بیشترین مقدار بالا آمدن گوشه ها را مقدار MaximumHeight بصورت یک عدد تصادفی بیک یک تا MaximumHeight تعیین می کند . مانند مثال زیر :
 
Make Matrix 3,500,250,25,10
Position Camera 250,150,-300
Randomize MATRIX 3,20
Update Matrix 3
Do
Loop
 
تابع GET MATRIX HEIGHT
این تابع ارتفاع هر گوشه در ماتریکس را برمی گرداند . مانند مثال زیر :
 
MatrixNumber=4
Make Matrix MatrixNumber,500,250,25,10
Position Camera 250,150,-300
SET MATRIX HEIGHT MatrixNumber,10,7,12
SET MATRIX HEIGHT MatrixNumber,0,0,-5
Update Matrix MatrixNumber
Do
X=10
Y=7
(H=Get Matrix Height(MatrixNumber,X,Y
(Text 10,10,"X= "+Str$(X)+" , Y = "+Str$(Y)+" And Height = "+Str$(H
Loop
 
دستور PREPARE MATRIX TEXTURE
با این دستور می توانیم بر روی تمامی شبکه های موجود در ماتریکس یک عکس بچسبانیم . مانند دستورالعمل زیر :
 
PREPARE MATRIX TEXTURE MatrixNumber,ImageNumber,Across,Down
 
طبق این دستورالعمل به جای MatrixNumber شماره ی ماتریکس مورد نظر و به جای ImageNumber شماره ی تصویر مورد نظر و به جای Across عدد یک و به جای Down عدد یک را قرار می دهیم . مانند مثال زیر :
 
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Demos\CShop\textures\misc\Caulk.tga",1
Make Matrix 3,500,250,5,2
Position Camera 250,70,-300
Randomize MATRIX 3,20
PREPARE MATRIX TEXTURE 3,1,1,1
Update Matrix 3
Do
Control Camera Using Arrowkeys 0,1,1
Loop
 
با استفاده از دکمه های جهت می توانیم حول ماتریکس گردش کنیم .


صفحه قبل 1 صفحه بعد

درباره وبلاگ


به وبلاگ من خوش آمدید
آخرین مطالب
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان آموزش ساخت بازی 3D ( سه بعدی ) به زبان Basic با دارک بیسیک D و آدرس darkbasic.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


آمار وب سایت:  

بازدید امروز : 2
بازدید دیروز : 0
بازدید هفته : 2
بازدید ماه : 244
بازدید کل : 99614
تعداد مطالب : 24
تعداد نظرات : 3
تعداد آنلاین : 1